// house_pkg/pages/locate/index.ts
// 导入位置服务
import QQMap from '../../../utils/qqmap'

Page({
  data: {
    points: [],
    address: ''
  },

  onLoad() {
    // 获取经纬度
    this.getLocation()
  },

  // 获取用户位置
  async getLocation() {
    const {latitude, longitude} = await wx.getLocation()
    this.getPoint(latitude, longitude)
  },

  // 选择新的位置
  async chooseLocation() {
    // 调用小程序 API 获取新的位置
    const {latitude, longitude} = await wx.chooseLocation()
    // 获取新的位置附近的小区
    this.getPoint(latitude, longitude)
  },

  getPoint(latitude, longitude) {
    // 显示loading提示
    wx.showToast({
      title: '正在加载...',
    })

    // 逆地址解析 (根据经纬度来获取地址)
    QQMap.reverseGeocoder({
      location: [latitude, longitude].join(','), //获取表单传入的位置坐标,不填默认当前位置,示例为string格式
      success: ({result: {address}}) => {
        this.setData({address})
      }
    })

    // 地点搜索
    QQMap.search({
      keyword: '住宅小区',  //搜索关键词
      page_size: 5,   // 	每页条目数
      location: [latitude, longitude].join(','),  //设置周边搜索中心点
      success: (result) => { //搜索成功后的回调
        // 过滤掉多余的数据
        const points = result.data.map(({id, title, _distance}) => {
          return {id, title, _distance}
        })
        // 渲染数据
        this.setData({points})
      },
      fail: (err) => {
        console.log(err.message);
      },
      complete: () => {
        // 隐藏 loading 提示
        wx.hideLoading()
      }
    })
  }
})